package com.ap.generator.distributor;

import com.ap.core.cxf.jaxb.distributor.AbstractMerchantInfoTypeGeneratorBuilder;
import com.ap.generator.common.FieldGenerator;

import static com.ap.datagen.core.GeneratorHelper.buildA;
import static com.ap.datagen.core.Nullable.nullable;
import static com.ap.generator.common.AddressMandatoryCountryCodeGeneratorBuilder.getAddressMandatoryCountryCodeGenerator;

public class MerchantInfoGeneratorBuilder extends
		AbstractMerchantInfoTypeGeneratorBuilder {

	@Override
	public void setupDefaults() {
		this.comapnyRegNumGenerator = FieldGenerator.COMAPNYREGNUMGENERATOR;
		this.merchantAddressGenerator = nullable(buildA(getAddressMandatoryCountryCodeGenerator()));
		this.merchantCmnNameGenerator = FieldGenerator.MERCHANTCMNNAMEGENERATOR;
		this.merchantIdGenerator = FieldGenerator.MERCHANTIDGENERATOR;
		this.merchantNameGenerator = FieldGenerator.MERCHANTNAMEGENERATOR;
		this.merchantStatusGenerator = FieldGenerator.MERCHANTSTATUSGENERATOR;
		this.merchantTypeGenerator = FieldGenerator.MERCHANTTYPEGENERATOR;
		this.offLoadReasonGenerator = FieldGenerator.OFFLOADREASONGENERATOR;
		this.settlementfileIdGenerator = FieldGenerator.SETTLEMENTFILEIDGENERATOR;
		this.merchantContactNumberGenerator = FieldGenerator.MERCHANTCONTACTNUMBERGENERATOR;
		this.merchantVatNumberGenerator = FieldGenerator.MERCHANTVATNUMBERGENERATOR;
	}

	public static MerchantInfoGeneratorBuilder getMerchantInfoGeneratorBuilder() {
		return new MerchantInfoGeneratorBuilder();
	}

}
